home *** CD-ROM | disk | FTP | other *** search
/ Gekkan Dennou Club 147 / Gekkan Dennou Club - 2000.8 Vol. 147 (Japan).7z / Gekkan Dennou Club - 2000.8 Vol. 147 (Japan) (Track 1).bin / fdimg / —‹Œêsrc.lzh / file.c < prev    next >
C/C++ Source or Header  |  1992-11-01  |  2KB  |  96 lines

  1. #include    "3DDEF.H"
  2. #include    "GLOBAL.H"
  3. #include    "FORWARD.H"
  4. #include    "XCODE.H"
  5.  
  6. /* ファイル制御 */
  7.  
  8. /* 既に存在している中から捜す */
  9. /* 無ければマイナスを返す */
  10. int
  11. file_search(STR filename)
  12. {
  13.     register int fn;
  14.     UBYTE f1[MAXLINE],f2[MAXLINE];
  15.  
  16.     strcpy(f1,filename);
  17.     etc_jstrup(f1);
  18.     for(fn=0;fn<MAX_FILE;fn++) {
  19.         strcpy(f2,FILE_NAMES_ST[fn].CONTENT);
  20.         etc_jstrup(f2);
  21. /*printf("(%s)(%s)",f1,f2);binkey();*/
  22.         if (!strcmp(f2,f1)) {
  23.             return(fn);
  24.         }
  25.     }
  26.     return(-1);
  27. }
  28.  
  29. /* 指定されたファイル番号をクローズする */
  30. int
  31. file_close(int filenumber)
  32. {
  33.     FILE *fp;
  34.  
  35.     if (fp = FILE_POINTERS[filenumber]) {
  36.         fclose(fp);
  37.     }
  38. }
  39.  
  40. /* 指定されたファイルをオープンし、指定されたファイル番号とする */
  41. /* 新規ならば 0 を返す */
  42. /* エラーならば -1 を返す */
  43. /* 既にあるファイルを正常にオープンしたなら 1 を返す */
  44. int
  45. file_open(int filenumber,STR filename)
  46. {
  47.     FILE *fp;
  48.  
  49.     fp = fopen((char *)filename,"rb");    /* 読み込み、バイナリモード */
  50.     strcpy(FILE_NAMES[filenumber].CONTENT,filename);
  51.     etc_name_to_full(FILE_NAMES[filenumber].CONTENT);
  52.     strcpy(FILE_NAMES_ST[filenumber].CONTENT,filename);
  53.     FILE_POINTERS[filenumber] = fp;        /* ファイルポインタ */
  54.     if (fp && fseek(fp,0L,0)) {        /* ファイル先頭へシーク */
  55.         return(-1);
  56.     }
  57.     return(fp != NULL_FP);
  58. }
  59.  
  60. /* 指定された番号のファイルをテキストに割り当てる */
  61. void
  62. file_set_text(int filenumber,int text_number)
  63. {
  64.     TDATA[text_number].TEXT_FILE = filenumber;
  65.     init_get_default_tn(text_number);
  66. }
  67.  
  68. int
  69. file_get_free_number()
  70. {
  71.     register int i;
  72.  
  73.     for(i = 0;i < MAX_FILE;i++) {
  74.         if ((!*(FILE_NAMES[i].CONTENT))
  75.          && (!*(FILE_NAMES_ST[i].CONTENT))) {    /* 無効なのを見付けた */
  76.             return(i);
  77.         }
  78.     }
  79.     return(-1);    /* 無い */
  80. }
  81.  
  82. #if 0
  83. void
  84. file_dump(STR fname)
  85. {
  86.     int i;
  87.  
  88.     window0();
  89.     for(i=0;i<MAX_FILE;i++) {
  90.         printf("(%-2d)[%s][%s]\n",i,FILE_NAMES[i].CONTENT,FILE_NAMES_ST[i].CONTENT);
  91.     }
  92.     printf(fname);
  93.     binkey();
  94. }
  95. #endif
  96.